﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace JiaBoPrint
{
    public partial class 诺贝达订货会卖点打印 : Form
    {
        private IntPtr Gp_IntPtr;                   //驱动打印句柄
        private libUsbContorl.UsbOperation NewUsb = new libUsbContorl.UsbOperation();
        public 诺贝达订货会卖点打印()
        {
            InitializeComponent();
        }
        private void SendData2USB(byte[] str)
        {
            NewUsb.SendData2USB(str, str.Length);
        }
        private void SendData2USB(string str)
        {
            byte[] by_SendData = System.Text.Encoding.GetEncoding(54936).GetBytes(str);
            SendData2USB(by_SendData);
        }
        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 13)//如果输入的是回车键  
            {
                string dm = textBox1.Text.ToString();
                string sqldm = @"exec [zdy_getDhhMdPrint] '{0}'";
                sqldm = string.Format(sqldm, dm);
                DataTable dtdm = DBHelper.ExecuteDataTable(sqldm);
                if (dtdm.Rows.Count > 0)
                {
                    NewUsb.FindUSBPrinter();
                    for (int k = 0; k < NewUsb.USBPortCount; k++)
                    {
                        if (NewUsb.LinkUSB(k))
                        {
                            SendData2USB("SIZE 50 mm,80 mm\r\n");//设置标签大小，单位mm.具体参数请用尺子量一下
                            SendData2USB("GAP 6 mm,0 mm\r\n");//设置两个标签之间的间隙，单位mm.具体参数请用尺子量一下
                            SendData2USB("CLS\r\n");//清空缓冲区
                            SendData2USB("DENSITY 7\r\n");//打印浓度
                            SendData2USB("REFERENCE 0,0\r\n");


                            //1:x方向起始点坐标 2:y方向起始点坐标a 3:字体 4：旋转角度 5：x_反相区域宽度，单位dot 6:y_反相区域高度，单位dot 7:内容
                            //SendData2USB("TEXT 350,250,\"TSS24.BF2\",90,1,1,\"" + dtdm.Rows[0]["主推属性"].ToString() + "\"\r\n");

                          

                            string MD = dtdm.Rows[0]["MD"].ToString();
                            Int32 mdlen = Convert.ToInt32( dtdm.Rows[0]["mdlen"].ToString());
                            string md1 = dtdm.Rows[0]["MD1"].ToString();
                            string md2 = dtdm.Rows[0]["MD2"].ToString();
                            string md3 = dtdm.Rows[0]["MD3"].ToString();
                            string md4 = dtdm.Rows[0]["MD4"].ToString();
                            string md5 = dtdm.Rows[0]["MD5"].ToString();
                            string md6 = dtdm.Rows[0]["MD6"].ToString();

                            if(mdlen>71)
                            {
                                SendData2USB("TEXT 370,50,\"TSS16.BF2\",90,2,2,\"款号：\"\r\n");
                                SendData2USB("TEXT 370,130,\"TSS16.BF2\",90,2,2,\"" + dtdm.Rows[0]["SKC"].ToString() + "\"\r\n");

                                SendData2USB("TEXT 320,50,\"TSS16.BF2\",90,2,2,\"中类：\"\r\n");
                                SendData2USB("TEXT 320,130,\"TSS16.BF2\",90,2,2,\"" + dtdm.Rows[0]["中类"].ToString() + "\"\r\n");

                                SendData2USB("TEXT 270,50,\"TSS16.BF2\",90,2,2,\"卖点：\"\r\n");
                                SendData2USB("TEXT 270,130,\"TSS16.BF2\",90,2,2,\"" + md1 + "\"\r\n");
                                SendData2USB("TEXT 220,50,\"TSS16.BF2\",90,2,2,\"" + md2 + "\"\r\n");
                                SendData2USB("TEXT 170,50,\"TSS16.BF2\",90,2,2,\"" + md3 + "\"\r\n");
                                SendData2USB("TEXT 120,50,\"TSS16.BF2\",90,2,2,\"" + md4 + "\"\r\n");
                                SendData2USB("TEXT 70,50,\"TSS16.BF2\",90,2,2,\"" + md5 + "\"\r\n");
                                SendData2USB("TEXT 30,50,\"TSS16.BF2\",90,2,2,\"" + md6 + "\"\r\n");
                            }
                           else if (mdlen > 56)
                            {
                                SendData2USB("TEXT 370,50,\"TSS16.BF2\",90,2,2,\"款号：\"\r\n");
                                SendData2USB("TEXT 370,130,\"TSS16.BF2\",90,2,2,\"" + dtdm.Rows[0]["SKC"].ToString() + "\"\r\n");

                                SendData2USB("TEXT 320,50,\"TSS16.BF2\",90,2,2,\"中类：\"\r\n");
                                SendData2USB("TEXT 320,130,\"TSS16.BF2\",90,2,2,\"" + dtdm.Rows[0]["中类"].ToString() + "\"\r\n");

                                SendData2USB("TEXT 270,50,\"TSS16.BF2\",90,2,2,\"卖点：\"\r\n");
                                SendData2USB("TEXT 270,130,\"TSS16.BF2\",90,2,2,\"" + md1 + "\"\r\n");
                                SendData2USB("TEXT 220,50,\"TSS16.BF2\",90,2,2,\"" + md2 + "\"\r\n");
                                SendData2USB("TEXT 170,50,\"TSS16.BF2\",90,2,2,\"" + md3 + "\"\r\n");
                                SendData2USB("TEXT 120,50,\"TSS16.BF2\",90,2,2,\"" + md4 + "\"\r\n");
                                SendData2USB("TEXT 70,50,\"TSS16.BF2\",90,2,2,\"" + md5 + "\"\r\n");
                            }
                            else if (mdlen > 49)
                            {
                                SendData2USB("TEXT 350,50,\"TSS16.BF2\",90,2,2,\"款号：\"\r\n");
                                SendData2USB("TEXT 350,130,\"TSS16.BF2\",90,2,2,\"" + dtdm.Rows[0]["SKC"].ToString() + "\"\r\n");

                                SendData2USB("TEXT 300,50,\"TSS16.BF2\",90,2,2,\"中类：\"\r\n");
                                SendData2USB("TEXT 300,130,\"TSS16.BF2\",90,2,2,\"" + dtdm.Rows[0]["中类"].ToString() + "\"\r\n");

                                SendData2USB("TEXT 250,50,\"TSS16.BF2\",90,2,2,\"卖点：\"\r\n");
                                SendData2USB("TEXT 250,130,\"TSS16.BF2\",90,2,2,\"" + md1 + "\"\r\n");
                                SendData2USB("TEXT 200,50,\"TSS16.BF2\",90,2,2,\"" + md2 + "\"\r\n");
                                SendData2USB("TEXT 150,50,\"TSS16.BF2\",90,2,2,\"" + md3 + "\"\r\n");
                                SendData2USB("TEXT 100,50,\"TSS16.BF2\",90,2,2,\"" + md4 + "\"\r\n");
                            }
                            else if (mdlen > 32)
                            {
                                SendData2USB("TEXT 300,50,\"TSS16.BF2\",90,2,2,\"款号：\"\r\n");
                                SendData2USB("TEXT 300,130,\"TSS16.BF2\",90,2,2,\"" + dtdm.Rows[0]["SKC"].ToString() + "\"\r\n");

                                SendData2USB("TEXT 250,50,\"TSS16.BF2\",90,2,2,\"中类：\"\r\n");
                                SendData2USB("TEXT 250,130,\"TSS16.BF2\",90,2,2,\"" + dtdm.Rows[0]["中类"].ToString() + "\"\r\n");

                                SendData2USB("TEXT 200,50,\"TSS16.BF2\",90,2,2,\"卖点：\"\r\n");
                                SendData2USB("TEXT 200,130,\"TSS16.BF2\",90,2,2,\"" + md1 + "\"\r\n");
                                SendData2USB("TEXT 150,50,\"TSS16.BF2\",90,2,2,\"" + md2 + "\"\r\n");
                                SendData2USB("TEXT 100,50,\"TSS16.BF2\",90,2,2,\"" + md3 + "\"\r\n");
                            }
                            else if (mdlen > 15)
                            {
                                SendData2USB("TEXT 300,50,\"TSS16.BF2\",90,2,2,\"款号：\"\r\n");
                                SendData2USB("TEXT 300,130,\"TSS16.BF2\",90,2,2,\"" + dtdm.Rows[0]["SKC"].ToString() + "\"\r\n");

                                SendData2USB("TEXT 250,50,\"TSS16.BF2\",90,2,2,\"中类：\"\r\n");
                                SendData2USB("TEXT 250,130,\"TSS16.BF2\",90,2,2,\"" + dtdm.Rows[0]["中类"].ToString() + "\"\r\n");

                                SendData2USB("TEXT 200,50,\"TSS16.BF2\",90,2,2,\"卖点：\"\r\n");
                                SendData2USB("TEXT 200,130,\"TSS16.BF2\",90,2,2,\"" + md1 + "\"\r\n");
                                SendData2USB("TEXT 150,50,\"TSS16.BF2\",90,2,2,\"" + md2 + "\"\r\n");
                            }
                            else
                            {
                                SendData2USB("TEXT 250,50,\"TSS16.BF2\",90,2,2,\"款号：\"\r\n");
                                SendData2USB("TEXT 250,130,\"TSS16.BF2\",90,2,2,\"" + dtdm.Rows[0]["SKC"].ToString() + "\"\r\n");

                                SendData2USB("TEXT 200,50,\"TSS16.BF2\",90,2,2,\"中类：\"\r\n");
                                SendData2USB("TEXT 200,130,\"TSS16.BF2\",90,2,2,\"" + dtdm.Rows[0]["中类"].ToString() + "\"\r\n");

                                SendData2USB("TEXT 150,50,\"TSS16.BF2\",90,2,2,\"卖点：\"\r\n");
                                SendData2USB("TEXT 150,130,\"TSS16.BF2\",90,2,2,\"" + md1 + "\"\r\n");
                                SendData2USB("TEXT 100,50,\"TSS16.BF2\",90,2,2,\"" + md2 + "\"\r\n");
                            }

                            //SendData2USB("TEXT 120,10,\"TSS24.BF2\",0,1,1,\"" + dtdm.Rows[0]["主推属性"].ToString() + "\"\r\n");

                            //SendData2USB("TEXT 2,60,\"TSS24.BF2\",0,1,1,\"中类：\"\r\n");
                            //SendData2USB("TEXT 60,60,\"TSS24.BF2\",0,1,1,\"" + dtdm.Rows[0]["中类"].ToString() + "\"\r\n");

                            //SendData2USB("TEXT 2,110,\"TSS24.BF2\",0,1,1,\"款号：\"\r\n");
                            //SendData2USB("TEXT 60,110,\"TSS24.BF2\",0,1,1,\"" + dtdm.Rows[0]["SKC"].ToString() + "\"\r\n");

                            //SendData2USB("TEXT 2,160,\"TSS24.BF2\",0,1,1,\"卖点：\"\r\n");

                            //SendData2USB("TEXT 60,160,\"TSS24.BF2\",0,1,1,\"" + dtdm.Rows[0]["MD1"].ToString() + "\"\r\n");


                            //SendData2USB("TEXT 2,210,\"TSS24.BF2\",0,1,1,\"" + dtdm.Rows[0]["MD2"].ToString() + "\"\r\n");


                            //SendData2USB("TEXT 2,260,\"TSS24.BF2\",0,1,1,\"" + dtdm.Rows[0]["MD3"].ToString() + "\"\r\n");


                            //SendData2USB("TEXT 2,310,\"TSS24.BF2\",0,1,1,\"" + dtdm.Rows[0]["MD4"].ToString() + "\"\r\n");

                            //SendData2USB("TEXT 2,360,\"TSS24.BF2\",0,1,1,\"" + dtdm.Rows[0]["MD5"].ToString() + "\"\r\n");

                            //SendData2USB("TEXT 2,410,\"TSS24.BF2\",0,1,1,\"" + dtdm.Rows[0]["MD6"].ToString() + "\"\r\n");

                            //SendData2USB("TEXT 2,460 ,\"TSS24.BF2\",0,1,1,\"" + dtdm.Rows[0]["MD7"].ToString() + "\"\r\n");

                            SendData2USB("PRINT 1\r\n");
                            NewUsb.CloseUSBPort();

                            textBox1.Text = "";
                        }
                        else
                        {
                            MessageBox.Show("请确定是否连接上打印机");
                        }
                    }
                }
                else
                {
                    MessageBox.Show("条码不存在");
                }
            }
        }
    }
}
